此笔记基于第一行代码编写

Android Studio

换源或直接下载gradle wrapper覆盖过去,不知道为啥直接用AS下只有50kb,而浏览器下还有正常速度

其他相关配置问题有待填充。。。

Android应用

四大组件

  • Activity

    眼睛看到的所有界面

  • Service

    后台偷跑的

  • BroadcastReceiver

    应用内外传播途径

  • ContentProvider

    应用程序间共享数据

系统控件

SQLite数据库

多媒体

Android项目结构分析

  1. .gradle和.idea

    这两个目录下放置的都是Android Studio 自动生成的一些文件,不要动这里的文件

  2. app

    项目中的代码,资源等内容都是放置在这个目录下的,我们后面的开发工作也基本是在这个目录下进行的

  3. build

    一些编辑时自动生成的文件

  4. gradle

    gradle wrapper的配置文件

  5. .gitignore

    这个文件是用来将指定的目录或文件排除在版本控制之外。

  6. build.gradle

    这个是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的

  7. gradle.properties

    这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中索引的gradle编辑脚本

  8. gradlew和gradlew.bat

    这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的

  9. HelloWorld.iml

    iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Studio是基于IntelliJ IDEA开发的),用来标识这是一个IntelliJ IDEA项目,无需修改

  10. local.properties

    这个文件用来指定本机中的Android SDK路径,通常内容是自动生成的,我们并不需要修改。除非你本机中的Android SDK位置发生了变化,那么就将这个文件中的路径改位置即可

  11. setting.gradle

    该文件用来指定项目中所有引入的模块

app目录分析

  1. build

    与外层的build目录类似,也包含了一些在编译时自动生成的文件

  2. libs

    如果你的项目中使用到了第三方jar包,就需要把这些jar包放在libs目录下,放在这个目录下的jar包会被自动添加到该项目的构建路径里

  3. androidTest

    此处是用来编写Android Test测试用例的,可以对项目进行一些自动化测试

  4. java

    Java代码的地方(Kolin代码也放在这里)

  5. res

    资源库

  6. AndroidManifest.xml

    整个Android项目的配置文件,程序中定义的所有四大组件的注册地,应用程序添加权限声明的地方

  7. test

    此处是用来编写Unit Test测试用例的,是对项目进行自动化测试的另一种方式

  8. .gitinore

    这个文件用来编写将app模块内指定的目录或文件排除在版本控制以外,作用和外层的 .gitignore文件类似

  9. app.iml

    IntelliJ IDEA项目自动生成的文件

  10. build.gradle

    app模块的gradle构建脚本

  11. proguard-rules.pro

    用来指定项目代码的混淆规则,当代码开发完成后打包成安装包文件,如果不希望代码被别人破解,通常会将代码进行混淆,从而让破解者难以阅读


1
2
3
4
5
6
7
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

这段表示MainActivity在AndroidManifest.xml里注册,没有在AndroidManifest.xml里注册的Activity是不能使用的。其中intent-filter里的两段代码表MainActivity是这个项目的主Activity,并且启动应用时优先启动的是这个Activity

android.intent.action.MAIN决定应用程序最先启动的

Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里